function KKB.Panel_GroupSettings( Panel )
	Panel_GroupSettings = Panel
	Panel_GroupSettings:SetSize(100, 400)
	Panel_GroupSettings:Clear(true)
	Panel_GroupSettings.contents = vgui.Create("DListLayout")
	Panel_GroupSettings.contents:Clear()
	
	local SelectedGroupLine = 1
	KKB.Group_GroupList = vgui.Create( "DListView" )
	KKB.Group_GroupList:AddColumn( "User Group" )
	KKB.Group_GroupList:SetTall( 150 )
	KKB.Group_GroupList:SetMultiSelect( true )
	function KKB.Group_Reload_GroupList()
		KKB.Group_GroupList:Clear()
		for k,_ in pairs(KKB.UserGroups) do
			local Line = KKB.Group_GroupList:AddLine(k)
			Line.OnSelect = function( line )
				SelectedGroupLine = KKB.Group_GroupList:GetSelectedLine()
				local Group = line:GetValue(1)
				
				local IgnoreBuddys = KKB.UserGroups[Group].Other.IgnoreBuddys
				Panel_GroupSettings.IgnoreBuddysCheck:SetValue(KKB.BoolToInt(IgnoreBuddys))
				
				local SpawnVehicles = KKB.UserGroups[Group].Spawn.Vehicles
				Panel_GroupSettings.SpawnVehiclesCheck:SetValue(KKB.BoolToInt(SpawnVehicles))
				
				local SpawnWeapons = KKB.UserGroups[Group].Spawn.Weapons
				Panel_GroupSettings.SpawnWeaponsCheck:SetValue(KKB.BoolToInt(SpawnWeapons))
				
				local SpawnNPCs = KKB.UserGroups[Group].Spawn.NPCs
				Panel_GroupSettings.SpawnNPCsCheck:SetValue(KKB.BoolToInt(SpawnNPCs))
				
				local SpawnSents = KKB.UserGroups[Group].Spawn.Sents
				Panel_GroupSettings.SpawnSentsCheck:SetValue(KKB.BoolToInt(SpawnSents))
				
				local SpawnOther = KKB.UserGroups[Group].Spawn.Other
				Panel_GroupSettings.SpawnOtherCheck:SetValue(KKB.BoolToInt(SpawnOther))
				
				local PhysgunWorld = KKB.UserGroups[Group].Physgun.World
				Panel_GroupSettings.PhysgunWorldCheck:SetValue(KKB.BoolToInt(PhysgunWorld))
				
				local PhysgunWorldProps = KKB.UserGroups[Group].Physgun.WorldProps
				Panel_GroupSettings.PhysgunWorldPropsCheck:SetValue(KKB.BoolToInt(PhysgunWorldProps))
				
				local PhysgunVehicles = KKB.UserGroups[Group].Physgun.Vehicles
				Panel_GroupSettings.PhysgunVehiclesCheck:SetValue(KKB.BoolToInt(PhysgunVehicles))
				
				local PhysgunWeapons = KKB.UserGroups[Group].Physgun.Weapons
				Panel_GroupSettings.PhysgunWeaponsCheck:SetValue(KKB.BoolToInt(PhysgunWeapons))
				
				local PhysgunNPCs = KKB.UserGroups[Group].Physgun.NPCs
				Panel_GroupSettings.PhysgunNPCsCheck:SetValue(KKB.BoolToInt(PhysgunNPCs))
				
				local PhysgunSents = KKB.UserGroups[Group].Physgun.Sents
				Panel_GroupSettings.PhysgunSentsCheck:SetValue(KKB.BoolToInt(PhysgunSents))
				
				local PhysgunOther = KKB.UserGroups[Group].Physgun.Other
				Panel_GroupSettings.PhysgunOtherCheck:SetValue(KKB.BoolToInt(PhysgunOther))
				
				local ToolgunWorld = KKB.UserGroups[Group].Toolgun.World
				Panel_GroupSettings.ToolgunWorldCheck:SetValue(KKB.BoolToInt(ToolgunWorld))
				
				local ToolgunWorldProps = KKB.UserGroups[Group].Toolgun.WorldProps
				Panel_GroupSettings.ToolgunWorldPropsCheck:SetValue(KKB.BoolToInt(ToolgunWorldProps))
				
				local ToolgunVehicles = KKB.UserGroups[Group].Toolgun.Vehicles
				Panel_GroupSettings.ToolgunVehiclesCheck:SetValue(KKB.BoolToInt(ToolgunVehicles))
				
				local ToolgunWeapons = KKB.UserGroups[Group].Toolgun.Weapons
				KKB.ToolgunWeaponsCheck:SetValue(KKB.BoolToInt(ToolgunWeapons))
				
				local ToolgunNPCs = KKB.UserGroups[Group].Toolgun.NPCs
				Panel_GroupSettings.ToolgunNPCsCheck:SetValue(KKB.BoolToInt(ToolgunNPCs))
				
				local ToolgunSents = KKB.UserGroups[Group].Toolgun.Sents
				Panel_GroupSettings.ToolgunSentsCheck:SetValue(KKB.BoolToInt(ToolgunSents))
				
				local ToolgunOther = KKB.UserGroups[Group].Toolgun.Other
				Panel_GroupSettings.ToolgunOtherCheck:SetValue(KKB.BoolToInt(ToolgunOther))
				
				local GravcannonWorld = KKB.UserGroups[Group].Gravcannon.World
				Panel_GroupSettings.GravcannonWorldCheck:SetValue(KKB.BoolToInt(GravcannonWorld))
				
				local GravcannonWorldProps = KKB.UserGroups[Group].Gravcannon.WorldProps
				Panel_GroupSettings.GravcannonWorldPropsCheck:SetValue(KKB.BoolToInt(GravcannonWorldProps))
				
				local GravcannonVehicles = KKB.UserGroups[Group].Gravcannon.Vehicles
				Panel_GroupSettings.GravcannonVehiclesCheck:SetValue(KKB.BoolToInt(GravcannonVehicles))
				
				local GravcannonWeapons = KKB.UserGroups[Group].Gravcannon.Weapons
				Panel_GroupSettings.GravcannonWeaponsCheck:SetValue(KKB.BoolToInt(GravcannonWeapons))
				
				local GravcannonNPCs = KKB.UserGroups[Group].Gravcannon.NPCs
				Panel_GroupSettings.GravcannonNPCsCheck:SetValue(KKB.BoolToInt(GravcannonNPCs))
				
				local GravcannonSents = KKB.UserGroups[Group].Gravcannon.Sents
				Panel_GroupSettings.GravcannonSentsCheck:SetValue(KKB.BoolToInt(GravcannonSents))
				
				local GravcannonOther = KKB.UserGroups[Group].Gravcannon.Other
				Panel_GroupSettings.GravcannonOtherCheck:SetValue(KKB.BoolToInt(GravcannonOther))
				
				local DamageWorld = KKB.UserGroups[Group].Damage.World
				Panel_GroupSettings.DamageWorldCheck:SetValue(KKB.BoolToInt(DamageWorld))
				
				local DamageWorldProps = KKB.UserGroups[Group].Damage.WorldProps
				Panel_GroupSettings.DamageWorldPropsCheck:SetValue(KKB.BoolToInt(DamageWorldProps))
				
				local DamageVehicles = KKB.UserGroups[Group].Damage.Vehicles
				Panel_GroupSettings.DamageVehiclesCheck:SetValue(KKB.BoolToInt(DamageVehicles))
				
				local DamageWeapons = KKB.UserGroups[Group].Damage.Weapons
				Panel_GroupSettings.DamageWeaponsCheck:SetValue(KKB.BoolToInt(DamageWeapons))
				
				local DamageNPCs = KKB.UserGroups[Group].Damage.NPCs
				Panel_GroupSettings.DamageNPCsCheck:SetValue(KKB.BoolToInt(DamageNPCs))
				
				local DamageSents = KKB.UserGroups[Group].Damage.Sents
				Panel_GroupSettings.DamageSentsCheck:SetValue(KKB.BoolToInt(DamageSents))
				
				local DamagePlayers = KKB.UserGroups[Group].Damage.Players
				Panel_GroupSettings.DamagePlayersCheck:SetValue(KKB.BoolToInt(DamagePlayers))
				
				local DamageOther = KKB.UserGroups[Group].Damage.Other
				Panel_GroupSettings.DamageOtherCheck:SetValue(KKB.BoolToInt(DamageOther))
				
				local UseWorld = KKB.UserGroups[Group].Use.World
				Panel_GroupSettings.UseWorldCheck:SetValue(KKB.BoolToInt(UseWorld))
				
				local UseWorldProps = KKB.UserGroups[Group].Use.WorldProps
				Panel_GroupSettings.UseWorldPropsCheck:SetValue(KKB.BoolToInt(UseWorldProps))
				
				local UseVehicles = KKB.UserGroups[Group].Use.Vehicles
				Panel_GroupSettings.UseVehiclesCheck:SetValue(KKB.BoolToInt(UseVehicles))
				
				local UseWeapons = KKB.UserGroups[Group].Use.Weapons
				Panel_GroupSettings.UseWeaponsCheck:SetValue(KKB.BoolToInt(UseWeapons))
				
				local UseNPCs = KKB.UserGroups[Group].Use.NPCs
				Panel_GroupSettings.UseNPCsCheck:SetValue(KKB.BoolToInt(UseNPCs))
				
				local UseSents = KKB.UserGroups[Group].Use.Sents
				Panel_GroupSettings.UseSentsCheck:SetValue(KKB.BoolToInt(UseSents))
				
				local UseOther = KKB.UserGroups[Group].Use.Other
				Panel_GroupSettings.UseOtherCheck:SetValue(KKB.BoolToInt(UseOther))
				
				local EnterVehicles = KKB.UserGroups[Group].Other.EnterVehicles
				Panel_GroupSettings.EnterVehiclesCheck:SetValue(KKB.BoolToInt(EnterVehicles))
				
				local PickupWeapons = KKB.UserGroups[Group].Other.PickupWeapons
				Panel_GroupSettings.PickupWeaponsCheck:SetValue(KKB.BoolToInt(PickupWeapons))
				
				local ContextOptions = KKB.UserGroups[Group].Other.ContextOptions
				Panel_GroupSettings.ContextOptionsCheck:SetValue(KKB.BoolToInt(ContextOptions))
				
				local AllToolguns = KKB.UserGroups[Group].Other.AllToolguns
				Panel_GroupSettings.AllToolgunsCheck:SetValue(KKB.BoolToInt(AllToolguns))
				
				local CanDonate = KKB.UserGroups[Group].Donate.Enabled
				Panel_GroupSettings.DonateCheck:SetValue(KKB.BoolToInt(CanDonate))
				
				local Amount = KKB.UserGroups[Group].Donate.Amount
				Panel_GroupSettings.DonateText:SetText(Amount)
				
				local Lump = KKB.UserGroups[Group].Donate.Lump
				Panel_GroupSettings.LumpSumCheck:SetValue(KKB.BoolToInt(Lump))
			end
		end
		if ( SelectedGroupLine != nil ) then
			local line = KKB.Group_GroupList:GetLine(SelectedGroupLine)
			if ( line != nil ) then
				KKB.Group_GroupList:SelectItem(line)
			end
		end
	end
	KKB.Group_Reload_GroupList()
	Panel_GroupSettings:AddPanel(KKB.Group_GroupList)
	
	local NewGroupText = vgui.Create( "DTextEntry" )
	NewGroupText:SetText("User Group Name")
	Panel_GroupSettings:AddPanel(NewGroupText)
	
	local NewGroupButton = vgui.Create( "DButton" )
	NewGroupButton:SetText( "New User Group" )
	NewGroupButton.DoClick = function( button )
		local GroupName = NewGroupText:GetValue()
		if ( GroupName != "" ) then
			net.Start( "KKB_UserGroups_New" )
			net.WriteString( GroupName )
			net.SendToServer()
		end
	end
	Panel_GroupSettings:AddPanel(NewGroupButton)
	
	local DeleteGroupButton = vgui.Create( "DButton" )
	DeleteGroupButton:SetText( "Delete User Group(s)" )
	DeleteGroupButton.DoClick = function( button )
		local SelectedLines = KKB.Group_GroupList:GetSelected()
		if ( #SelectedLines > 0 ) then
			local Groups = {}
			for _,v in pairs(SelectedLines) do
				table.insert(Groups, v.Columns[1]:GetValue())
			end
			if ( #Groups > 0 ) then
				net.Start( "KKB_UserGroups_Delete" )
				net.WriteTable(Groups)
				net.SendToServer()
			end
		end
	end
	Panel_GroupSettings:AddPanel(DeleteGroupButton)
	
	Panel_GroupSettings.IgnoreBuddysCheck = vgui.Create("DCheckBoxLabel")
	Panel_GroupSettings.IgnoreBuddysCheck:SetText("Ignore Buddys List")
	Panel_GroupSettings.IgnoreBuddysCheck:SetTextColor( Color(0, 0, 0, 255) )
	Panel_GroupSettings.IgnoreBuddysCheck.OnChange = function( _, fVal )
		local SelectedLines = KKB.Group_GroupList:GetSelected()
		if ( #SelectedLines > 0 ) then
			local Groups = {}
			for _,v in pairs(SelectedLines) do
				local Group = v.Columns[1]:GetValue()
				if ( KKB.UserGroups[Group].Other.IgnoreBuddys != fVal ) then
					table.insert(Groups, Group)
				end
			end
			if ( #Groups > 0 ) then
				net.Start( "KKB_UserGroups_Change" )
				net.WriteTable( Groups )
				net.WriteString( "Other" )
				net.WriteString( "IgnoreBuddys" )
				net.WriteUInt( KKB.BoolToInt(fVal), 32 )
				net.SendToServer()
			end
		end
	end
	Panel_GroupSettings:AddControl("Label", {Text = "If Selected Group Will Ignore Buddy's List Checks"})
	Panel_GroupSettings:AddPanel(Panel_GroupSettings.IgnoreBuddysCheck)
	
	Panel_GroupSettings.SpawnVehiclesCheck = vgui.Create("DCheckBoxLabel")
	Panel_GroupSettings.SpawnVehiclesCheck:SetText("Spawn Vehicles")
	Panel_GroupSettings.SpawnVehiclesCheck:SetTextColor( Color(0, 0, 0, 255) )
	Panel_GroupSettings.SpawnVehiclesCheck.OnChange = function( _, fVal )
		local SelectedLines = KKB.Group_GroupList:GetSelected()
		if ( #SelectedLines > 0 ) then
			local Groups = {}
			for _,v in pairs(SelectedLines) do
				local Group = v.Columns[1]:GetValue()
				if ( KKB.UserGroups[Group].Spawn.Vehicles != fVal ) then
					table.insert(Groups, Group)
				end
			end
			if ( #Groups > 0 ) then
				net.Start( "KKB_UserGroups_Change" )
				net.WriteTable( Groups )
				net.WriteString( "Spawn" )
				net.WriteString( "Vehicles" )
				net.WriteUInt( KKB.BoolToInt(fVal), 32 )
				net.SendToServer()
			end
		end
	end
	Panel_GroupSettings:AddControl("Label", {Text = ""})
	Panel_GroupSettings:AddControl("Label", {Text = "If Selected Group Will Always Be Able Spawn Specific Types"})
	Panel_GroupSettings:AddPanel(Panel_GroupSettings.SpawnVehiclesCheck)
	
	Panel_GroupSettings.SpawnWeaponsCheck = vgui.Create("DCheckBoxLabel")
	Panel_GroupSettings.SpawnWeaponsCheck:SetText("Spawn Weapons")
	Panel_GroupSettings.SpawnWeaponsCheck:SetTextColor( Color(0, 0, 0, 255) )
	Panel_GroupSettings.SpawnWeaponsCheck.OnChange = function( _, fVal )
		local SelectedLines = KKB.Group_GroupList:GetSelected()
		if ( #SelectedLines > 0 ) then
			local Groups = {}
			for _,v in pairs(SelectedLines) do
				local Group = v.Columns[1]:GetValue()
				if ( KKB.UserGroups[Group].Spawn.Weapons != fVal ) then
					table.insert(Groups, Group)
				end
			end
			if ( #Groups > 0 ) then
				net.Start( "KKB_UserGroups_Change" )
				net.WriteTable( Groups )
				net.WriteString( "Spawn" )
				net.WriteString( "Weapons" )
				net.WriteUInt( KKB.BoolToInt(fVal), 32 )
				net.SendToServer()
			end
		end
	end
	Panel_GroupSettings:AddPanel(Panel_GroupSettings.SpawnWeaponsCheck)
	
	Panel_GroupSettings.SpawnNPCsCheck = vgui.Create("DCheckBoxLabel")
	Panel_GroupSettings.SpawnNPCsCheck:SetText("Spawn NPCs")
	Panel_GroupSettings.SpawnNPCsCheck:SetTextColor( Color(0, 0, 0, 255) )
	Panel_GroupSettings.SpawnNPCsCheck.OnChange = function( _, fVal )
		local SelectedLines = KKB.Group_GroupList:GetSelected()
		if ( #SelectedLines > 0 ) then
			local Groups = {}
			for _,v in pairs(SelectedLines) do
				local Group = v.Columns[1]:GetValue()
				if ( KKB.UserGroups[Group].Spawn.NPCs != fVal ) then
					table.insert(Groups, Group)
				end
			end
			if ( #Groups > 0 ) then
				net.Start( "KKB_UserGroups_Change" )
				net.WriteTable( Groups )
				net.WriteString( "Spawn" )
				net.WriteString( "NPCs" )
				net.WriteUInt( KKB.BoolToInt(fVal), 32 )
				net.SendToServer()
			end
		end
	end
	Panel_GroupSettings:AddPanel(Panel_GroupSettings.SpawnNPCsCheck)
	
	Panel_GroupSettings.SpawnSentsCheck = vgui.Create("DCheckBoxLabel")
	Panel_GroupSettings.SpawnSentsCheck:SetText("Spawn Sents")
	Panel_GroupSettings.SpawnSentsCheck:SetTextColor( Color(0, 0, 0, 255) )
	Panel_GroupSettings.SpawnSentsCheck.OnChange = function( _, fVal )
		local SelectedLines = KKB.Group_GroupList:GetSelected()
		if ( #SelectedLines > 0 ) then
			local Groups = {}
			for _,v in pairs(SelectedLines) do
				local Group = v.Columns[1]:GetValue()
				if ( KKB.UserGroups[Group].Spawn.Sents != fVal ) then
					table.insert(Groups, Group)
				end
			end
			if ( #Groups > 0 ) then
				net.Start( "KKB_UserGroups_Change" )
				net.WriteTable( Groups )
				net.WriteString( "Spawn" )
				net.WriteString( "Sents" )
				net.WriteUInt( KKB.BoolToInt(fVal), 32 )
				net.SendToServer()
			end
		end
	end
	Panel_GroupSettings:AddPanel(Panel_GroupSettings.SpawnSentsCheck)
	
	Panel_GroupSettings.SpawnOtherCheck = vgui.Create("DCheckBoxLabel")
	Panel_GroupSettings.SpawnOtherCheck:SetText("Spawn Other")
	Panel_GroupSettings.SpawnOtherCheck:SetTextColor( Color(0, 0, 0, 255) )
	Panel_GroupSettings.SpawnOtherCheck.OnChange = function( _, fVal )
		local SelectedLines = KKB.Group_GroupList:GetSelected()
		if ( #SelectedLines > 0 ) then
			local Groups = {}
			for _,v in pairs(SelectedLines) do
				local Group = v.Columns[1]:GetValue()
				if ( KKB.UserGroups[Group].Spawn.Other != fVal ) then
					table.insert(Groups, Group)
				end
			end
			if ( #Groups > 0 ) then
				net.Start( "KKB_UserGroups_Change" )
				net.WriteTable( Groups )
				net.WriteString( "Spawn" )
				net.WriteString( "Other" )
				net.WriteUInt( KKB.BoolToInt(fVal), 32 )
				net.SendToServer()
			end
		end
	end
	Panel_GroupSettings:AddPanel(Panel_GroupSettings.SpawnOtherCheck)
	
	Panel_GroupSettings.PhysgunWorldCheck = vgui.Create("DCheckBoxLabel")
	Panel_GroupSettings.PhysgunWorldCheck:SetText("Physgun World")
	Panel_GroupSettings.PhysgunWorldCheck:SetTextColor( Color(0, 0, 0, 255) )
	Panel_GroupSettings.PhysgunWorldCheck.OnChange = function( _, fVal )
		local SelectedLines = KKB.Group_GroupList:GetSelected()
		if ( #SelectedLines > 0 ) then
			local Groups = {}
			for _,v in pairs(SelectedLines) do
				local Group = v.Columns[1]:GetValue()
				if ( KKB.UserGroups[Group].Physgun.World != fVal ) then
					table.insert(Groups, Group)
				end
			end
			if ( #Groups > 0 ) then
				net.Start( "KKB_UserGroups_Change" )
				net.WriteTable( Groups )
				net.WriteString( "Physgun" )
				net.WriteString( "World" )
				net.WriteUInt( KKB.BoolToInt(fVal), 32 )
				net.SendToServer()
			end
		end
	end
	Panel_GroupSettings:AddControl("Label", {Text = ""})
	Panel_GroupSettings:AddControl("Label", {Text = "If Selected Group Will Always Be Able To Do Specific Action"})
	Panel_GroupSettings:AddControl("Label", {Text = "Physgun:"})
	Panel_GroupSettings:AddPanel(Panel_GroupSettings.PhysgunWorldCheck)
	
	Panel_GroupSettings.PhysgunWorldPropsCheck = vgui.Create("DCheckBoxLabel")
	Panel_GroupSettings.PhysgunWorldPropsCheck:SetText("Physgun World Props")
	Panel_GroupSettings.PhysgunWorldPropsCheck:SetTextColor( Color(0, 0, 0, 255) )
	Panel_GroupSettings.PhysgunWorldPropsCheck.OnChange = function( _, fVal )
		local SelectedLines = KKB.Group_GroupList:GetSelected()
		if ( #SelectedLines > 0 ) then
			local Groups = {}
			for _,v in pairs(SelectedLines) do
				local Group = v.Columns[1]:GetValue()
				if ( KKB.UserGroups[Group].Physgun.WorldProps != fVal ) then
					table.insert(Groups, Group)
				end
			end
			if ( #Groups > 0 ) then
				net.Start( "KKB_UserGroups_Change" )
				net.WriteTable( Groups )
				net.WriteString( "Physgun" )
				net.WriteString( "WorldProps" )
				net.WriteUInt( KKB.BoolToInt(fVal), 32 )
				net.SendToServer()
			end
		end
	end
	Panel_GroupSettings:AddPanel(Panel_GroupSettings.PhysgunWorldPropsCheck)
	
	Panel_GroupSettings.PhysgunVehiclesCheck = vgui.Create("DCheckBoxLabel")
	Panel_GroupSettings.PhysgunVehiclesCheck:SetText("Physgun Vehicles")
	Panel_GroupSettings.PhysgunVehiclesCheck:SetTextColor( Color(0, 0, 0, 255) )
	Panel_GroupSettings.PhysgunVehiclesCheck.OnChange = function( _, fVal )
		local SelectedLines = KKB.Group_GroupList:GetSelected()
		if ( #SelectedLines > 0 ) then
			local Groups = {}
			for _,v in pairs(SelectedLines) do
				local Group = v.Columns[1]:GetValue()
				if ( KKB.UserGroups[Group].Physgun.Vehicles != fVal ) then
					table.insert(Groups, Group)
				end
			end
			if ( #Groups > 0 ) then
				net.Start( "KKB_UserGroups_Change" )
				net.WriteTable( Groups )
				net.WriteString( "Physgun" )
				net.WriteString( "Vehicles" )
				net.WriteUInt( KKB.BoolToInt(fVal), 32 )
				net.SendToServer()
			end
		end
	end
	Panel_GroupSettings:AddPanel(Panel_GroupSettings.PhysgunVehiclesCheck)
	
	Panel_GroupSettings.PhysgunWeaponsCheck = vgui.Create("DCheckBoxLabel")
	Panel_GroupSettings.PhysgunWeaponsCheck:SetText("Physgun Weapons")
	Panel_GroupSettings.PhysgunWeaponsCheck:SetTextColor( Color(0, 0, 0, 255) )
	Panel_GroupSettings.PhysgunWeaponsCheck.OnChange = function( _, fVal )
		local SelectedLines = KKB.Group_GroupList:GetSelected()
		if ( #SelectedLines > 0 ) then
			local Groups = {}
			for _,v in pairs(SelectedLines) do
				local Group = v.Columns[1]:GetValue()
				if ( KKB.UserGroups[Group].Physgun.Weapons != fVal ) then
					table.insert(Groups, Group)
				end
			end
			if ( #Groups > 0 ) then
				net.Start( "KKB_UserGroups_Change" )
				net.WriteTable( Groups )
				net.WriteString( "Physgun" )
				net.WriteString( "Weapons" )
				net.WriteUInt( KKB.BoolToInt(fVal), 32 )
				net.SendToServer()
			end
		end
	end
	Panel_GroupSettings:AddPanel(Panel_GroupSettings.PhysgunWeaponsCheck)
	
	Panel_GroupSettings.PhysgunNPCsCheck = vgui.Create("DCheckBoxLabel")
	Panel_GroupSettings.PhysgunNPCsCheck:SetText("Physgun NPCs")
	Panel_GroupSettings.PhysgunNPCsCheck:SetTextColor( Color(0, 0, 0, 255) )
	Panel_GroupSettings.PhysgunNPCsCheck.OnChange = function( _, fVal )
		local SelectedLines = KKB.Group_GroupList:GetSelected()
		if ( #SelectedLines > 0 ) then
			local Groups = {}
			for _,v in pairs(SelectedLines) do
				local Group = v.Columns[1]:GetValue()
				if ( KKB.UserGroups[Group].Physgun.NPCs != fVal ) then
					table.insert(Groups, Group)
				end
			end
			if ( #Groups > 0 ) then
				net.Start( "KKB_UserGroups_Change" )
				net.WriteTable( Groups )
				net.WriteString( "Physgun" )
				net.WriteString( "NPCs" )
				net.WriteUInt( KKB.BoolToInt(fVal), 32 )
				net.SendToServer()
			end
		end
	end
	Panel_GroupSettings:AddPanel(Panel_GroupSettings.PhysgunNPCsCheck)
	
	Panel_GroupSettings.PhysgunSentsCheck = vgui.Create("DCheckBoxLabel")
	Panel_GroupSettings.PhysgunSentsCheck:SetText("Physgun SENTs")
	Panel_GroupSettings.PhysgunSentsCheck:SetTextColor( Color(0, 0, 0, 255) )
	Panel_GroupSettings.PhysgunSentsCheck.OnChange = function( _, fVal )
		local SelectedLines = KKB.Group_GroupList:GetSelected()
		if ( #SelectedLines > 0 ) then
			local Groups = {}
			for _,v in pairs(SelectedLines) do
				local Group = v.Columns[1]:GetValue()
				if ( KKB.UserGroups[Group].Physgun.Sents != fVal ) then
					table.insert(Groups, Group)
				end
			end
			if ( #Groups > 0 ) then
				net.Start( "KKB_UserGroups_Change" )
				net.WriteTable( Groups )
				net.WriteString( "Physgun" )
				net.WriteString( "Sents" )
				net.WriteUInt( KKB.BoolToInt(fVal), 32 )
				net.SendToServer()
			end
		end
	end
	Panel_GroupSettings:AddPanel(Panel_GroupSettings.PhysgunSentsCheck)
	
	Panel_GroupSettings.PhysgunOtherCheck = vgui.Create("DCheckBoxLabel")
	Panel_GroupSettings.PhysgunOtherCheck:SetText("Physgun Other")
	Panel_GroupSettings.PhysgunOtherCheck:SetTextColor( Color(0, 0, 0, 255) )
	Panel_GroupSettings.PhysgunOtherCheck.OnChange = function( _, fVal )
		local SelectedLines = KKB.Group_GroupList:GetSelected()
		if ( #SelectedLines > 0 ) then
			local Groups = {}
			for _,v in pairs(SelectedLines) do
				local Group = v.Columns[1]:GetValue()
				if ( KKB.UserGroups[Group].Physgun.Other != fVal ) then
					table.insert(Groups, Group)
				end
			end
			if ( #Groups > 0 ) then
				net.Start( "KKB_UserGroups_Change" )
				net.WriteTable( Groups )
				net.WriteString( "Physgun" )
				net.WriteString( "Other" )
				net.WriteUInt( KKB.BoolToInt(fVal), 32 )
				net.SendToServer()
			end
		end
	end
	Panel_GroupSettings:AddPanel(Panel_GroupSettings.PhysgunOtherCheck)
	
	Panel_GroupSettings.ToolgunWorldCheck = vgui.Create("DCheckBoxLabel")
	Panel_GroupSettings.ToolgunWorldCheck:SetText("Toolgun World")
	Panel_GroupSettings.ToolgunWorldCheck:SetTextColor( Color(0, 0, 0, 255) )
	Panel_GroupSettings.ToolgunWorldCheck.OnChange = function( _, fVal )
		local SelectedLines = KKB.Group_GroupList:GetSelected()
		if ( #SelectedLines > 0 ) then
			local Groups = {}
			for _,v in pairs(SelectedLines) do
				local Group = v.Columns[1]:GetValue()
				if ( KKB.UserGroups[Group].Toolgun.World != fVal ) then
					table.insert(Groups, Group)
				end
			end
			if ( #Groups > 0 ) then
				net.Start( "KKB_UserGroups_Change" )
				net.WriteTable( Groups )
				net.WriteString( "Toolgun" )
				net.WriteString( "World" )
				net.WriteUInt( KKB.BoolToInt(fVal), 32 )
				net.SendToServer()
			end
		end
	end
	Panel_GroupSettings:AddControl("Label", {Text = "Toolgun:"})
	Panel_GroupSettings:AddPanel(Panel_GroupSettings.ToolgunWorldCheck)
	
	Panel_GroupSettings.ToolgunWorldPropsCheck = vgui.Create("DCheckBoxLabel")
	Panel_GroupSettings.ToolgunWorldPropsCheck:SetText("Toolgun World Props")
	Panel_GroupSettings.ToolgunWorldPropsCheck:SetTextColor( Color(0, 0, 0, 255) )
	Panel_GroupSettings.ToolgunWorldPropsCheck.OnChange = function( _, fVal )
		local SelectedLines = KKB.Group_GroupList:GetSelected()
		if ( #SelectedLines > 0 ) then
			local Groups = {}
			for _,v in pairs(SelectedLines) do
				local Group = v.Columns[1]:GetValue()
				if ( KKB.UserGroups[Group].Toolgun.WorldProps != fVal ) then
					table.insert(Groups, Group)
				end
			end
			if ( #Groups > 0 ) then
				net.Start( "KKB_UserGroups_Change" )
				net.WriteTable( Groups )
				net.WriteString( "Toolgun" )
				net.WriteString( "WorldProps" )
				net.WriteUInt( KKB.BoolToInt(fVal), 32 )
				net.SendToServer()
			end
		end
	end
	Panel_GroupSettings:AddPanel(Panel_GroupSettings.ToolgunWorldPropsCheck)
	
	Panel_GroupSettings.ToolgunVehiclesCheck = vgui.Create("DCheckBoxLabel")
	Panel_GroupSettings.ToolgunVehiclesCheck:SetText("Toolgun Vehicles")
	Panel_GroupSettings.ToolgunVehiclesCheck:SetTextColor( Color(0, 0, 0, 255) )
	Panel_GroupSettings.ToolgunVehiclesCheck.OnChange = function( _, fVal )
		local SelectedLines = KKB.Group_GroupList:GetSelected()
		if ( #SelectedLines > 0 ) then
			local Groups = {}
			for _,v in pairs(SelectedLines) do
				local Group = v.Columns[1]:GetValue()
				if ( KKB.UserGroups[Group].Toolgun.Vehicles != fVal ) then
					table.insert(Groups, Group)
				end
			end
			if ( #Groups > 0 ) then
				net.Start( "KKB_UserGroups_Change" )
				net.WriteTable( Groups )
				net.WriteString( "Toolgun" )
				net.WriteString( "Vehicles" )
				net.WriteUInt( KKB.BoolToInt(fVal), 32 )
				net.SendToServer()
			end
		end
	end
	Panel_GroupSettings:AddPanel(Panel_GroupSettings.ToolgunVehiclesCheck)
	
	KKB.ToolgunWeaponsCheck = vgui.Create("DCheckBoxLabel")
	KKB.ToolgunWeaponsCheck:SetText("Toolgun Weapons")
	KKB.ToolgunWeaponsCheck:SetTextColor( Color(0, 0, 0, 255) )
	KKB.ToolgunWeaponsCheck.OnChange = function( _, fVal )
		local SelectedLines = KKB.Group_GroupList:GetSelected()
		if ( #SelectedLines > 0 ) then
			local Groups = {}
			for _,v in pairs(SelectedLines) do
				local Group = v.Columns[1]:GetValue()
				if ( KKB.UserGroups[Group].Toolgun.Weapons != fVal ) then
					table.insert(Groups, Group)
				end
			end
			if ( #Groups > 0 ) then
				net.Start( "KKB_UserGroups_Change" )
				net.WriteTable( Groups )
				net.WriteString( "Toolgun" )
				net.WriteString( "Weapons" )
				net.WriteUInt( KKB.BoolToInt(fVal), 32 )
				net.SendToServer()
			end
		end
	end
	Panel_GroupSettings:AddPanel(KKB.ToolgunWeaponsCheck)
	
	Panel_GroupSettings.ToolgunNPCsCheck = vgui.Create("DCheckBoxLabel")
	Panel_GroupSettings.ToolgunNPCsCheck:SetText("Toolgun NPCs")
	Panel_GroupSettings.ToolgunNPCsCheck:SetTextColor( Color(0, 0, 0, 255) )
	Panel_GroupSettings.ToolgunNPCsCheck.OnChange = function( _, fVal )
		local SelectedLines = KKB.Group_GroupList:GetSelected()
		if ( #SelectedLines > 0 ) then
			local Groups = {}
			for _,v in pairs(SelectedLines) do
				local Group = v.Columns[1]:GetValue()
				if ( KKB.UserGroups[Group].Toolgun.NPCs != fVal ) then
					table.insert(Groups, Group)
				end
			end
			if ( #Groups > 0 ) then
				net.Start( "KKB_UserGroups_Change" )
				net.WriteTable( Groups )
				net.WriteString( "Toolgun" )
				net.WriteString( "NPCs" )
				net.WriteUInt( KKB.BoolToInt(fVal), 32 )
				net.SendToServer()
			end
		end
	end
	Panel_GroupSettings:AddPanel(Panel_GroupSettings.ToolgunNPCsCheck)
	
	Panel_GroupSettings.ToolgunSentsCheck = vgui.Create("DCheckBoxLabel")
	Panel_GroupSettings.ToolgunSentsCheck:SetText("Toolgun SENTs")
	Panel_GroupSettings.ToolgunSentsCheck:SetTextColor( Color(0, 0, 0, 255) )
	Panel_GroupSettings.ToolgunSentsCheck.OnChange = function( _, fVal )
		local SelectedLines = KKB.Group_GroupList:GetSelected()
		if ( #SelectedLines > 0 ) then
			local Groups = {}
			for _,v in pairs(SelectedLines) do
				local Group = v.Columns[1]:GetValue()
				if ( KKB.UserGroups[Group].Toolgun.Sents != fVal ) then
					table.insert(Groups, Group)
				end
			end
			if ( #Groups > 0 ) then
				net.Start( "KKB_UserGroups_Change" )
				net.WriteTable( Groups )
				net.WriteString( "Toolgun" )
				net.WriteString( "Sents" )
				net.WriteUInt( KKB.BoolToInt(fVal), 32 )
				net.SendToServer()
			end
		end
	end
	Panel_GroupSettings:AddPanel(Panel_GroupSettings.ToolgunSentsCheck)
	
	Panel_GroupSettings.ToolgunOtherCheck = vgui.Create("DCheckBoxLabel")
	Panel_GroupSettings.ToolgunOtherCheck:SetText("Toolgun Other")
	Panel_GroupSettings.ToolgunOtherCheck:SetTextColor( Color(0, 0, 0, 255) )
	Panel_GroupSettings.ToolgunOtherCheck.OnChange = function( _, fVal )
		local SelectedLines = KKB.Group_GroupList:GetSelected()
		if ( #SelectedLines > 0 ) then
			local Groups = {}
			for _,v in pairs(SelectedLines) do
				local Group = v.Columns[1]:GetValue()
				if ( KKB.UserGroups[Group].Toolgun.Other != fVal ) then
					table.insert(Groups, Group)
				end
			end
			if ( #Groups > 0 ) then
				net.Start( "KKB_UserGroups_Change" )
				net.WriteTable( Groups )
				net.WriteString( "Toolgun" )
				net.WriteString( "Other" )
				net.WriteUInt( KKB.BoolToInt(fVal), 32 )
				net.SendToServer()
			end
		end
	end
	Panel_GroupSettings:AddPanel(Panel_GroupSettings.ToolgunOtherCheck)
	
	Panel_GroupSettings.GravcannonWorldCheck = vgui.Create("DCheckBoxLabel")
	Panel_GroupSettings.GravcannonWorldCheck:SetText("Gravcannon World")
	Panel_GroupSettings.GravcannonWorldCheck:SetTextColor( Color(0, 0, 0, 255) )
	Panel_GroupSettings.GravcannonWorldCheck.OnChange = function( _, fVal )
		local SelectedLines = KKB.Group_GroupList:GetSelected()
		if ( #SelectedLines > 0 ) then
			local Groups = {}
			for _,v in pairs(SelectedLines) do
				local Group = v.Columns[1]:GetValue()
				if ( KKB.UserGroups[Group].Gravcannon.World != fVal ) then
					table.insert(Groups, Group)
				end
			end
			if ( #Groups > 0 ) then
				net.Start( "KKB_UserGroups_Change" )
				net.WriteTable( Groups )
				net.WriteString( "Gravcannon" )
				net.WriteString( "World" )
				net.WriteUInt( KKB.BoolToInt(fVal), 32 )
				net.SendToServer()
			end
		end
	end
	Panel_GroupSettings:AddControl("Label", {Text = "Gravcannon:"})
	Panel_GroupSettings:AddPanel(Panel_GroupSettings.GravcannonWorldCheck)
	
	Panel_GroupSettings.GravcannonWorldPropsCheck = vgui.Create("DCheckBoxLabel")
	Panel_GroupSettings.GravcannonWorldPropsCheck:SetText("Gravcannon World Props")
	Panel_GroupSettings.GravcannonWorldPropsCheck:SetTextColor( Color(0, 0, 0, 255) )
	Panel_GroupSettings.GravcannonWorldPropsCheck.OnChange = function( _, fVal )
		local SelectedLines = KKB.Group_GroupList:GetSelected()
		if ( #SelectedLines > 0 ) then
			local Groups = {}
			for _,v in pairs(SelectedLines) do
				local Group = v.Columns[1]:GetValue()
				if ( KKB.UserGroups[Group].Gravcannon.WorldProps != fVal ) then
					table.insert(Groups, Group)
				end
			end
			if ( #Groups > 0 ) then
				net.Start( "KKB_UserGroups_Change" )
				net.WriteTable( Groups )
				net.WriteString( "Gravcannon" )
				net.WriteString( "WorldProps" )
				net.WriteUInt( KKB.BoolToInt(fVal), 32 )
				net.SendToServer()
			end
		end
	end
	Panel_GroupSettings:AddPanel(Panel_GroupSettings.GravcannonWorldPropsCheck)
	
	Panel_GroupSettings.GravcannonVehiclesCheck = vgui.Create("DCheckBoxLabel")
	Panel_GroupSettings.GravcannonVehiclesCheck:SetText("Gravcannon Vehicles")
	Panel_GroupSettings.GravcannonVehiclesCheck:SetTextColor( Color(0, 0, 0, 255) )
	Panel_GroupSettings.GravcannonVehiclesCheck.OnChange = function( _, fVal )
		local SelectedLines = KKB.Group_GroupList:GetSelected()
		if ( #SelectedLines > 0 ) then
			local Groups = {}
			for _,v in pairs(SelectedLines) do
				local Group = v.Columns[1]:GetValue()
				if ( KKB.UserGroups[Group].Gravcannon.Vehicles != fVal ) then
					table.insert(Groups, Group)
				end
			end
			if ( #Groups > 0 ) then
				net.Start( "KKB_UserGroups_Change" )
				net.WriteTable( Groups )
				net.WriteString( "Gravcannon" )
				net.WriteString( "Vehicles" )
				net.WriteUInt( KKB.BoolToInt(fVal), 32 )
				net.SendToServer()
			end
		end
	end
	Panel_GroupSettings:AddPanel(Panel_GroupSettings.GravcannonVehiclesCheck)
	
	Panel_GroupSettings.GravcannonWeaponsCheck = vgui.Create("DCheckBoxLabel")
	Panel_GroupSettings.GravcannonWeaponsCheck:SetText("Gravcannon Weapons")
	Panel_GroupSettings.GravcannonWeaponsCheck:SetTextColor( Color(0, 0, 0, 255) )
	Panel_GroupSettings.GravcannonWeaponsCheck.OnChange = function( _, fVal )
		local SelectedLines = KKB.Group_GroupList:GetSelected()
		if ( #SelectedLines > 0 ) then
			local Groups = {}
			for _,v in pairs(SelectedLines) do
				local Group = v.Columns[1]:GetValue()
				if ( KKB.UserGroups[Group].Gravcannon.Weapons != fVal ) then
					table.insert(Groups, Group)
				end
			end
			if ( #Groups > 0 ) then
				net.Start( "KKB_UserGroups_Change" )
				net.WriteTable( Groups )
				net.WriteString( "Gravcannon" )
				net.WriteString( "Weapons" )
				net.WriteUInt( KKB.BoolToInt(fVal), 32 )
				net.SendToServer()
			end
		end
	end
	Panel_GroupSettings:AddPanel(Panel_GroupSettings.GravcannonWeaponsCheck)
	
	Panel_GroupSettings.GravcannonNPCsCheck = vgui.Create("DCheckBoxLabel")
	Panel_GroupSettings.GravcannonNPCsCheck:SetText("Gravcannon NPCs")
	Panel_GroupSettings.GravcannonNPCsCheck:SetTextColor( Color(0, 0, 0, 255) )
	Panel_GroupSettings.GravcannonNPCsCheck.OnChange = function( _, fVal )
		local SelectedLines = KKB.Group_GroupList:GetSelected()
		if ( #SelectedLines > 0 ) then
			local Groups = {}
			for _,v in pairs(SelectedLines) do
				local Group = v.Columns[1]:GetValue()
				if ( KKB.UserGroups[Group].Gravcannon.NPCs != fVal ) then
					table.insert(Groups, Group)
				end
			end
			if ( #Groups > 0 ) then
				net.Start( "KKB_UserGroups_Change" )
				net.WriteTable( Groups )
				net.WriteString( "Gravcannon" )
				net.WriteString( "NPCs" )
				net.WriteUInt( KKB.BoolToInt(fVal), 32 )
				net.SendToServer()
			end
		end
	end
	Panel_GroupSettings:AddPanel(Panel_GroupSettings.GravcannonNPCsCheck)
	
	Panel_GroupSettings.GravcannonSentsCheck = vgui.Create("DCheckBoxLabel")
	Panel_GroupSettings.GravcannonSentsCheck:SetText("Gravcannon SENTs")
	Panel_GroupSettings.GravcannonSentsCheck:SetTextColor( Color(0, 0, 0, 255) )
	Panel_GroupSettings.GravcannonSentsCheck.OnChange = function( _, fVal )
		local SelectedLines = KKB.Group_GroupList:GetSelected()
		if ( #SelectedLines > 0 ) then
			local Groups = {}
			for _,v in pairs(SelectedLines) do
				local Group = v.Columns[1]:GetValue()
				if ( KKB.UserGroups[Group].Gravcannon.Sents != fVal ) then
					table.insert(Groups, Group)
				end
			end
			if ( #Groups > 0 ) then
				net.Start( "KKB_UserGroups_Change" )
				net.WriteTable( Groups )
				net.WriteString( "Gravcannon" )
				net.WriteString( "Sents" )
				net.WriteUInt( KKB.BoolToInt(fVal), 32 )
				net.SendToServer()
			end
		end
	end
	Panel_GroupSettings:AddPanel(Panel_GroupSettings.GravcannonSentsCheck)
	
	Panel_GroupSettings.GravcannonOtherCheck = vgui.Create("DCheckBoxLabel")
	Panel_GroupSettings.GravcannonOtherCheck:SetText("Gravcannon Other")
	Panel_GroupSettings.GravcannonOtherCheck:SetTextColor( Color(0, 0, 0, 255) )
	Panel_GroupSettings.GravcannonOtherCheck.OnChange = function( _, fVal )
		local SelectedLines = KKB.Group_GroupList:GetSelected()
		if ( #SelectedLines > 0 ) then
			local Groups = {}
			for _,v in pairs(SelectedLines) do
				local Group = v.Columns[1]:GetValue()
				if ( KKB.UserGroups[Group].Gravcannon.Other != fVal ) then
					table.insert(Groups, Group)
				end
			end
			if ( #Groups > 0 ) then
				net.Start( "KKB_UserGroups_Change" )
				net.WriteTable( Groups )
				net.WriteString( "Gravcannon" )
				net.WriteString( "Other" )
				net.WriteUInt( KKB.BoolToInt(fVal), 32 )
				net.SendToServer()
			end
		end
	end
	Panel_GroupSettings:AddPanel(Panel_GroupSettings.GravcannonOtherCheck)
	
	Panel_GroupSettings.UseWorldCheck = vgui.Create("DCheckBoxLabel")
	Panel_GroupSettings.UseWorldCheck:SetText("Use World")
	Panel_GroupSettings.UseWorldCheck:SetTextColor( Color(0, 0, 0, 255) )
	Panel_GroupSettings.UseWorldCheck.OnChange = function( _, fVal )
		local SelectedLines = KKB.Group_GroupList:GetSelected()
		if ( #SelectedLines > 0 ) then
			local Groups = {}
			for _,v in pairs(SelectedLines) do
				local Group = v.Columns[1]:GetValue()
				if ( KKB.UserGroups[Group].Use.World != fVal ) then
					table.insert(Groups, Group)
				end
			end
			if ( #Groups > 0 ) then
				net.Start( "KKB_UserGroups_Change" )
				net.WriteTable( Groups )
				net.WriteString( "Use" )
				net.WriteString( "World" )
				net.WriteUInt( KKB.BoolToInt(fVal), 32 )
				net.SendToServer()
			end
		end
	end
	Panel_GroupSettings:AddControl("Label", {Text = "Use:"})
	Panel_GroupSettings:AddPanel(Panel_GroupSettings.UseWorldCheck)
	
	Panel_GroupSettings.UseWorldPropsCheck = vgui.Create("DCheckBoxLabel")
	Panel_GroupSettings.UseWorldPropsCheck:SetText("Use World Props")
	Panel_GroupSettings.UseWorldPropsCheck:SetTextColor( Color(0, 0, 0, 255) )
	Panel_GroupSettings.UseWorldPropsCheck.OnChange = function( _, fVal )
		local SelectedLines = KKB.Group_GroupList:GetSelected()
		if ( #SelectedLines > 0 ) then
			local Groups = {}
			for _,v in pairs(SelectedLines) do
				local Group = v.Columns[1]:GetValue()
				if ( KKB.UserGroups[Group].Use.WorldProps != fVal ) then
					table.insert(Groups, Group)
				end
			end
			if ( #Groups > 0 ) then
				net.Start( "KKB_UserGroups_Change" )
				net.WriteTable( Groups )
				net.WriteString( "Use" )
				net.WriteString( "WorldProps" )
				net.WriteUInt( KKB.BoolToInt(fVal), 32 )
				net.SendToServer()
			end
		end
	end
	Panel_GroupSettings:AddPanel(Panel_GroupSettings.UseWorldPropsCheck)
	
	Panel_GroupSettings.UseVehiclesCheck = vgui.Create("DCheckBoxLabel")
	Panel_GroupSettings.UseVehiclesCheck:SetText("Use Vehicles")
	Panel_GroupSettings.UseVehiclesCheck:SetTextColor( Color(0, 0, 0, 255) )
	Panel_GroupSettings.UseVehiclesCheck.OnChange = function( _, fVal )
		local SelectedLines = KKB.Group_GroupList:GetSelected()
		if ( #SelectedLines > 0 ) then
			local Groups = {}
			for _,v in pairs(SelectedLines) do
				local Group = v.Columns[1]:GetValue()
				if ( KKB.UserGroups[Group].Use.Vehicles != fVal ) then
					table.insert(Groups, Group)
				end
			end
			if ( #Groups > 0 ) then
				net.Start( "KKB_UserGroups_Change" )
				net.WriteTable( Groups )
				net.WriteString( "Use" )
				net.WriteString( "Vehicles" )
				net.WriteUInt( KKB.BoolToInt(fVal), 32 )
				net.SendToServer()
			end
		end
	end
	Panel_GroupSettings:AddPanel(Panel_GroupSettings.UseVehiclesCheck)
	
	Panel_GroupSettings.UseWeaponsCheck = vgui.Create("DCheckBoxLabel")
	Panel_GroupSettings.UseWeaponsCheck:SetText("Use Weapons")
	Panel_GroupSettings.UseWeaponsCheck:SetTextColor( Color(0, 0, 0, 255) )
	Panel_GroupSettings.UseWeaponsCheck.OnChange = function( _, fVal )
		local SelectedLines = KKB.Group_GroupList:GetSelected()
		if ( #SelectedLines > 0 ) then
			local Groups = {}
			for _,v in pairs(SelectedLines) do
				local Group = v.Columns[1]:GetValue()
				if ( KKB.UserGroups[Group].Use.Weapons != fVal ) then
					table.insert(Groups, Group)
				end
			end
			if ( #Groups > 0 ) then
				net.Start( "KKB_UserGroups_Change" )
				net.WriteTable( Groups )
				net.WriteString( "Use" )
				net.WriteString( "Weapons" )
				net.WriteUInt( KKB.BoolToInt(fVal), 32 )
				net.SendToServer()
			end
		end
	end
	Panel_GroupSettings:AddPanel(Panel_GroupSettings.UseWeaponsCheck)
	
	Panel_GroupSettings.UseNPCsCheck = vgui.Create("DCheckBoxLabel")
	Panel_GroupSettings.UseNPCsCheck:SetText("Use NPCs")
	Panel_GroupSettings.UseNPCsCheck:SetTextColor( Color(0, 0, 0, 255) )
	Panel_GroupSettings.UseNPCsCheck.OnChange = function( _, fVal )
		local SelectedLines = KKB.Group_GroupList:GetSelected()
		if ( #SelectedLines > 0 ) then
			local Groups = {}
			for _,v in pairs(SelectedLines) do
				local Group = v.Columns[1]:GetValue()
				if ( KKB.UserGroups[Group].Use.NPCs != fVal ) then
					table.insert(Groups, Group)
				end
			end
			if ( #Groups > 0 ) then
				net.Start( "KKB_UserGroups_Change" )
				net.WriteTable( Groups )
				net.WriteString( "Use" )
				net.WriteString( "NPCs" )
				net.WriteUInt( KKB.BoolToInt(fVal), 32 )
				net.SendToServer()
			end
		end
	end
	Panel_GroupSettings:AddPanel(Panel_GroupSettings.UseNPCsCheck)
	
	Panel_GroupSettings.UseSentsCheck = vgui.Create("DCheckBoxLabel")
	Panel_GroupSettings.UseSentsCheck:SetText("Use SENTs")
	Panel_GroupSettings.UseSentsCheck:SetTextColor( Color(0, 0, 0, 255) )
	Panel_GroupSettings.UseSentsCheck.OnChange = function( _, fVal )
		local SelectedLines = KKB.Group_GroupList:GetSelected()
		if ( #SelectedLines > 0 ) then
			local Groups = {}
			for _,v in pairs(SelectedLines) do
				local Group = v.Columns[1]:GetValue()
				if ( KKB.UserGroups[Group].Use.Sents != fVal ) then
					table.insert(Groups, Group)
				end
			end
			if ( #Groups > 0 ) then
				net.Start( "KKB_UserGroups_Change" )
				net.WriteTable( Groups )
				net.WriteString( "Use" )
				net.WriteString( "Sents" )
				net.WriteUInt( KKB.BoolToInt(fVal), 32 )
				net.SendToServer()
			end
		end
	end
	Panel_GroupSettings:AddPanel(Panel_GroupSettings.UseSentsCheck)
	
	Panel_GroupSettings.UseOtherCheck = vgui.Create("DCheckBoxLabel")
	Panel_GroupSettings.UseOtherCheck:SetText("Use Other")
	Panel_GroupSettings.UseOtherCheck:SetTextColor( Color(0, 0, 0, 255) )
	Panel_GroupSettings.UseOtherCheck.OnChange = function( _, fVal )
		local SelectedLines = KKB.Group_GroupList:GetSelected()
		if ( #SelectedLines > 0 ) then
			local Groups = {}
			for _,v in pairs(SelectedLines) do
				local Group = v.Columns[1]:GetValue()
				if ( KKB.UserGroups[Group].Use.Other != fVal ) then
					table.insert(Groups, Group)
				end
			end
			if ( #Groups > 0 ) then
				net.Start( "KKB_UserGroups_Change" )
				net.WriteTable( Groups )
				net.WriteString( "Use" )
				net.WriteString( "Other" )
				net.WriteUInt( KKB.BoolToInt(fVal), 32 )
				net.SendToServer()
			end
		end
	end
	Panel_GroupSettings:AddPanel(Panel_GroupSettings.UseOtherCheck)
	
	Panel_GroupSettings.DamageWorldCheck = vgui.Create("DCheckBoxLabel")
	Panel_GroupSettings.DamageWorldCheck:SetText("Damage World")
	Panel_GroupSettings.DamageWorldCheck:SetTextColor( Color(0, 0, 0, 255) )
	Panel_GroupSettings.DamageWorldCheck.OnChange = function( _, fVal )
		local SelectedLines = KKB.Group_GroupList:GetSelected()
		if ( #SelectedLines > 0 ) then
			local Groups = {}
			for _,v in pairs(SelectedLines) do
				local Group = v.Columns[1]:GetValue()
				if ( KKB.UserGroups[Group].Damage.World != fVal ) then
					table.insert(Groups, Group)
				end
			end
			if ( #Groups > 0 ) then
				net.Start( "KKB_UserGroups_Change" )
				net.WriteTable( Groups )
				net.WriteString( "Damage" )
				net.WriteString( "World" )
				net.WriteUInt( KKB.BoolToInt(fVal), 32 )
				net.SendToServer()
			end
		end
	end
	Panel_GroupSettings:AddControl("Label", {Text = "Damage:"})
	Panel_GroupSettings:AddPanel(Panel_GroupSettings.DamageWorldCheck)
	
	Panel_GroupSettings.DamageWorldPropsCheck = vgui.Create("DCheckBoxLabel")
	Panel_GroupSettings.DamageWorldPropsCheck:SetText("Damage World Props")
	Panel_GroupSettings.DamageWorldPropsCheck:SetTextColor( Color(0, 0, 0, 255) )
	Panel_GroupSettings.DamageWorldPropsCheck.OnChange = function( _, fVal )
		local SelectedLines = KKB.Group_GroupList:GetSelected()
		if ( #SelectedLines > 0 ) then
			local Groups = {}
			for _,v in pairs(SelectedLines) do
				local Group = v.Columns[1]:GetValue()
				if ( KKB.UserGroups[Group].Damage.WorldProps != fVal ) then
					table.insert(Groups, Group)
				end
			end
			if ( #Groups > 0 ) then
				net.Start( "KKB_UserGroups_Change" )
				net.WriteTable( Groups )
				net.WriteString( "Damage" )
				net.WriteString( "WorldProps" )
				net.WriteUInt( KKB.BoolToInt(fVal), 32 )
				net.SendToServer()
			end
		end
	end
	Panel_GroupSettings:AddPanel(Panel_GroupSettings.DamageWorldPropsCheck)
	
	Panel_GroupSettings.DamageVehiclesCheck = vgui.Create("DCheckBoxLabel")
	Panel_GroupSettings.DamageVehiclesCheck:SetText("Damage Vehicles")
	Panel_GroupSettings.DamageVehiclesCheck:SetTextColor( Color(0, 0, 0, 255) )
	Panel_GroupSettings.DamageVehiclesCheck.OnChange = function( _, fVal )
		local SelectedLines = KKB.Group_GroupList:GetSelected()
		if ( #SelectedLines > 0 ) then
			local Groups = {}
			for _,v in pairs(SelectedLines) do
				local Group = v.Columns[1]:GetValue()
				if ( KKB.UserGroups[Group].Damage.Vehicles != fVal ) then
					table.insert(Groups, Group)
				end
			end
			if ( #Groups > 0 ) then
				net.Start( "KKB_UserGroups_Change" )
				net.WriteTable( Groups )
				net.WriteString( "Damage" )
				net.WriteString( "Vehicles" )
				net.WriteUInt( KKB.BoolToInt(fVal), 32 )
				net.SendToServer()
			end
		end
	end
	Panel_GroupSettings:AddPanel(Panel_GroupSettings.DamageVehiclesCheck)
	
	Panel_GroupSettings.DamageWeaponsCheck = vgui.Create("DCheckBoxLabel")
	Panel_GroupSettings.DamageWeaponsCheck:SetText("Damage Weapons")
	Panel_GroupSettings.DamageWeaponsCheck:SetTextColor( Color(0, 0, 0, 255) )
	Panel_GroupSettings.DamageWeaponsCheck.OnChange = function( _, fVal )
		local SelectedLines = KKB.Group_GroupList:GetSelected()
		if ( #SelectedLines > 0 ) then
			local Groups = {}
			for _,v in pairs(SelectedLines) do
				local Group = v.Columns[1]:GetValue()
				if ( KKB.UserGroups[Group].Damage.Weapons != fVal ) then
					table.insert(Groups, Group)
				end
			end
			if ( #Groups > 0 ) then
				net.Start( "KKB_UserGroups_Change" )
				net.WriteTable( Groups )
				net.WriteString( "Damage" )
				net.WriteString( "Weapons" )
				net.WriteUInt( KKB.BoolToInt(fVal), 32 )
				net.SendToServer()
			end
		end
	end
	Panel_GroupSettings:AddPanel(Panel_GroupSettings.DamageWeaponsCheck)
	
	Panel_GroupSettings.DamageNPCsCheck = vgui.Create("DCheckBoxLabel")
	Panel_GroupSettings.DamageNPCsCheck:SetText("Damage NPCs")
	Panel_GroupSettings.DamageNPCsCheck:SetTextColor( Color(0, 0, 0, 255) )
	Panel_GroupSettings.DamageNPCsCheck.OnChange = function( _, fVal )
		local SelectedLines = KKB.Group_GroupList:GetSelected()
		if ( #SelectedLines > 0 ) then
			local Groups = {}
			for _,v in pairs(SelectedLines) do
				local Group = v.Columns[1]:GetValue()
				if ( KKB.UserGroups[Group].Damage.NPCs != fVal ) then
					table.insert(Groups, Group)
				end
			end
			if ( #Groups > 0 ) then
				net.Start( "KKB_UserGroups_Change" )
				net.WriteTable( Groups )
				net.WriteString( "Damage" )
				net.WriteString( "NPCs" )
				net.WriteUInt( KKB.BoolToInt(fVal), 32 )
				net.SendToServer()
			end
		end
	end
	Panel_GroupSettings:AddPanel(Panel_GroupSettings.DamageNPCsCheck)
	
	Panel_GroupSettings.DamageSentsCheck = vgui.Create("DCheckBoxLabel")
	Panel_GroupSettings.DamageSentsCheck:SetText("Damage SENTs")
	Panel_GroupSettings.DamageSentsCheck:SetTextColor( Color(0, 0, 0, 255) )
	Panel_GroupSettings.DamageSentsCheck.OnChange = function( _, fVal )
		local SelectedLines = KKB.Group_GroupList:GetSelected()
		if ( #SelectedLines > 0 ) then
			local Groups = {}
			for _,v in pairs(SelectedLines) do
				local Group = v.Columns[1]:GetValue()
				if ( KKB.UserGroups[Group].Damage.Sents != fVal ) then
					table.insert(Groups, Group)
				end
			end
			if ( #Groups > 0 ) then
				net.Start( "KKB_UserGroups_Change" )
				net.WriteTable( Groups )
				net.WriteString( "Damage" )
				net.WriteString( "Sents" )
				net.WriteUInt( KKB.BoolToInt(fVal), 32 )
				net.SendToServer()
			end
		end
	end
	Panel_GroupSettings:AddPanel(Panel_GroupSettings.DamageSentsCheck)
	
	Panel_GroupSettings.DamagePlayersCheck = vgui.Create("DCheckBoxLabel")
	Panel_GroupSettings.DamagePlayersCheck:SetText("Damage Players")
	Panel_GroupSettings.DamagePlayersCheck:SetTextColor( Color(0, 0, 0, 255) )
	Panel_GroupSettings.DamagePlayersCheck.OnChange = function( _, fVal )
		local SelectedLines = KKB.Group_GroupList:GetSelected()
		if ( #SelectedLines > 0 ) then
			local Groups = {}
			for _,v in pairs(SelectedLines) do
				local Group = v.Columns[1]:GetValue()
				if ( KKB.UserGroups[Group].Damage.Players != fVal ) then
					table.insert(Groups, Group)
				end
			end
			if ( #Groups > 0 ) then
				net.Start( "KKB_UserGroups_Change" )
				net.WriteTable( Groups )
				net.WriteString( "Damage" )
				net.WriteString( "Players" )
				net.WriteUInt( KKB.BoolToInt(fVal), 32 )
				net.SendToServer()
			end
		end
	end
	Panel_GroupSettings:AddPanel(Panel_GroupSettings.DamagePlayersCheck)
	
	Panel_GroupSettings.DamageOtherCheck = vgui.Create("DCheckBoxLabel")
	Panel_GroupSettings.DamageOtherCheck:SetText("Damage Other")
	Panel_GroupSettings.DamageOtherCheck:SetTextColor( Color(0, 0, 0, 255) )
	Panel_GroupSettings.DamageOtherCheck.OnChange = function( _, fVal )
		local SelectedLines = KKB.Group_GroupList:GetSelected()
		if ( #SelectedLines > 0 ) then
			local Groups = {}
			for _,v in pairs(SelectedLines) do
				local Group = v.Columns[1]:GetValue()
				if ( KKB.UserGroups[Group].Damage.Other != fVal ) then
					table.insert(Groups, Group)
				end
			end
			if ( #Groups > 0 ) then
				net.Start( "KKB_UserGroups_Change" )
				net.WriteTable( Groups )
				net.WriteString( "Damage" )
				net.WriteString( "Other" )
				net.WriteUInt( KKB.BoolToInt(fVal), 32 )
				net.SendToServer()
			end
		end
	end
	Panel_GroupSettings:AddPanel(Panel_GroupSettings.DamageOtherCheck)
	
	Panel_GroupSettings.EnterVehiclesCheck = vgui.Create("DCheckBoxLabel")
	Panel_GroupSettings.EnterVehiclesCheck:SetText("Enter Vehicles")
	Panel_GroupSettings.EnterVehiclesCheck:SetTextColor( Color(0, 0, 0, 255) )
	Panel_GroupSettings.EnterVehiclesCheck.OnChange = function( _, fVal )
		local SelectedLines = KKB.Group_GroupList:GetSelected()
		if ( #SelectedLines > 0 ) then
			local Groups = {}
			for _,v in pairs(SelectedLines) do
				local Group = v.Columns[1]:GetValue()
				if ( KKB.UserGroups[Group].Other.EnterVehicles != fVal ) then
					table.insert(Groups, Group)
				end
			end
			if ( #Groups > 0 ) then
				net.Start( "KKB_UserGroups_Change" )
				net.WriteTable( Groups )
				net.WriteString( "Other" )
				net.WriteString( "EnterVehicles" )
				net.WriteUInt( KKB.BoolToInt(fVal), 32 )
				net.SendToServer()
			end
		end
	end
	Panel_GroupSettings:AddControl("Label", {Text = "Other:"})
	Panel_GroupSettings:AddPanel(Panel_GroupSettings.EnterVehiclesCheck)
	
	Panel_GroupSettings.PickupWeaponsCheck = vgui.Create("DCheckBoxLabel")
	Panel_GroupSettings.PickupWeaponsCheck:SetText("Pickup Weapons")
	Panel_GroupSettings.PickupWeaponsCheck:SetTextColor( Color(0, 0, 0, 255) )
	Panel_GroupSettings.PickupWeaponsCheck.OnChange = function( _, fVal )
		local SelectedLines = KKB.Group_GroupList:GetSelected()
		if ( #SelectedLines > 0 ) then
			local Groups = {}
			for _,v in pairs(SelectedLines) do
				local Group = v.Columns[1]:GetValue()
				if ( KKB.UserGroups[Group].Other.PickupWeapons != fVal ) then
					table.insert(Groups, Group)
				end
			end
			if ( #Groups > 0 ) then
				net.Start( "KKB_UserGroups_Change" )
				net.WriteTable( Groups )
				net.WriteString( "Other" )
				net.WriteString( "PickupWeapons" )
				net.WriteUInt( KKB.BoolToInt(fVal), 32 )
				net.SendToServer()
			end
		end
	end
	Panel_GroupSettings:AddPanel(Panel_GroupSettings.PickupWeaponsCheck)
	
	Panel_GroupSettings.ContextOptionsCheck = vgui.Create("DCheckBoxLabel")
	Panel_GroupSettings.ContextOptionsCheck:SetText("Context Menu Options")
	Panel_GroupSettings.ContextOptionsCheck:SetTextColor( Color(0, 0, 0, 255) )
	Panel_GroupSettings.ContextOptionsCheck.OnChange = function( _, fVal )
		local SelectedLines = KKB.Group_GroupList:GetSelected()
		if ( #SelectedLines > 0 ) then
			local Groups = {}
			for _,v in pairs(SelectedLines) do
				local Group = v.Columns[1]:GetValue()
				if ( KKB.UserGroups[Group].Other.ContextOptions != fVal ) then
					table.insert(Groups, Group)
				end
			end
			if ( #Groups > 0 ) then
				net.Start( "KKB_UserGroups_Change" )
				net.WriteTable( Groups )
				net.WriteString( "Other" )
				net.WriteString( "ContextOptions" )
				net.WriteUInt( KKB.BoolToInt(fVal), 32 )
				net.SendToServer()
			end
		end
	end
	Panel_GroupSettings:AddPanel(Panel_GroupSettings.ContextOptionsCheck)
	
	Panel_GroupSettings.AllToolgunsCheck = vgui.Create("DCheckBoxLabel")
	Panel_GroupSettings.AllToolgunsCheck:SetText("Use All Toolguns")
	Panel_GroupSettings.AllToolgunsCheck:SetTextColor( Color(0, 0, 0, 255) )
	Panel_GroupSettings.AllToolgunsCheck.OnChange = function( _, fVal )
		local SelectedLines = KKB.Group_GroupList:GetSelected()
		if ( #SelectedLines > 0 ) then
			local Groups = {}
			for _,v in pairs(SelectedLines) do
				local Group = v.Columns[1]:GetValue()
				if ( KKB.UserGroups[Group].Other.AllToolguns != fVal ) then
					table.insert(Groups, Group)
				end
			end
			if ( #Groups > 0 ) then
				net.Start( "KKB_UserGroups_Change" )
				net.WriteTable( Groups )
				net.WriteString( "Other" )
				net.WriteString( "AllToolguns" )
				net.WriteUInt( KKB.BoolToInt(fVal), 32 )
				net.SendToServer()
			end
		end
	end
	Panel_GroupSettings:AddPanel(Panel_GroupSettings.AllToolgunsCheck)
	
	Panel_GroupSettings.DonateCheck = vgui.Create("DCheckBoxLabel")
	Panel_GroupSettings.DonateCheck:SetText("Donate For Rank")
	Panel_GroupSettings.DonateCheck:SetTextColor( Color(0, 0, 0, 255) )
	Panel_GroupSettings.DonateCheck.OnChange = function( _, fVal )
		local SelectedLines = KKB.Group_GroupList:GetSelected()
		if ( #SelectedLines > 0 ) then
			local Groups = {}
			for _,v in pairs(SelectedLines) do
				local Group = v.Columns[1]:GetValue()
				if ( KKB.UserGroups[Group].Donate.Enabled != fVal ) then
					table.insert(Groups, Group)
				end
			end
			if ( #Groups > 0 ) then
				net.Start( "KKB_UserGroups_Change" )
				net.WriteTable( Groups )
				net.WriteString( "Donate" )
				net.WriteString( "Enabled" )
				net.WriteUInt( KKB.BoolToInt(fVal), 32 )
				net.SendToServer()
			end
		end
	end
	Panel_GroupSettings:AddControl("Label", {Text = ""})
	Panel_GroupSettings:AddControl("Label", {Text = "If Users Can Donate To Reach Selected Group"})
	Panel_GroupSettings:AddPanel(Panel_GroupSettings.DonateCheck)
	
	Panel_GroupSettings.DonateText = vgui.Create( "DTextEntry" )
	Panel_GroupSettings.DonateText:SetText("Amount Needed")
	Panel_GroupSettings.DonateText.OnEnter = function( TextEntry )
		local Text = TextEntry:GetValue()
		--Need Something To Strip It Down To Numbers Only!
		if ( Text != nil ) then
			net.Start( "KKB_UserGroups_Change" )
			net.WriteTable( Groups )
			net.WriteString( "Donate" )
			net.WriteString( "Amount" )
			net.WriteUInt( Text, 32 )
			net.SendToServer()
		end
	end
	Panel_GroupSettings:AddControl("Label", {Text = "Amount Needed To Reach Rank (Enter Saves Value)"})
	Panel_GroupSettings:AddPanel(Panel_GroupSettings.DonateText)
	
	Panel_GroupSettings.LumpSumCheck = vgui.Create("DCheckBoxLabel")
	Panel_GroupSettings.LumpSumCheck:SetText("Lump Sum Needed")
	Panel_GroupSettings.LumpSumCheck:SetTextColor( Color(0, 0, 0, 255) )
	Panel_GroupSettings.LumpSumCheck.OnChange = function( _, fVal )
		local SelectedLines = KKB.Group_GroupList:GetSelected()
		if ( #SelectedLines > 0 ) then
			local Groups = {}
			for _,v in pairs(SelectedLines) do
				local Group = v.Columns[1]:GetValue()
				if ( KKB.UserGroups[Group].Donate.Lump != fVal ) then
					table.insert(Groups, Group)
				end
			end
			if ( #Groups > 0 ) then
				net.Start( "KKB_UserGroups_Change" )
				net.WriteTable( Groups )
				net.WriteString( "Donate" )
				net.WriteString( "Lump" )
				net.WriteUInt( KKB.BoolToInt(fVal), 32 )
				net.SendToServer()
			end
		end
	end
	Panel_GroupSettings:AddControl("Label", {Text = "If Users Must Donate Full Amount At Once To Reach Rank"})
	Panel_GroupSettings:AddPanel(Panel_GroupSettings.LumpSumCheck)
end